package com.app.diary.ui;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;

import androidx.appcompat.widget.Toolbar;

import com.app.diary.Mapp;
import com.app.diary.R;
import com.app.diary.utils.AppUtils;

/**
 * 主页面
 */
public class MainActivity extends BaseActivity {

    private Toolbar toolbar; // 标题栏控件
    private Button browseButton; // 查看日记按钮控件
    private Button createButton; // 创建日记按钮控件
    private TextView versionTextView; // 当前版本文本控件
    private ImageButton logoutButton; // 退出登录按钮控件

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (!Mapp.getInstance().isUserLoggedIn()) {
            // 用户未登录，返回到登录页
            Intent intent = LoginActivity.buildIntent(this);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(intent);
            finish();
            return;
        }
        setContentView(R.layout.activity_main);
        initView();
        setView();
    }

    /**
     * 初始化控件
     */
    private void initView() {
        toolbar = findViewById(R.id.toolbar);
        browseButton = findViewById(R.id.browse_button);
        createButton = findViewById(R.id.create_button);
        versionTextView = findViewById(R.id.version_textView);
        logoutButton = findViewById(R.id.logout_button); // 使用 ImageButton 引用
    }

    /**
     * 设置控件
     */
    private void setView() {
        // 将标题栏关联到页面
        setSupportActionBar(toolbar);

        // 设置查看日记按钮的点击事件
        browseButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = DiaryListActivity.buildIntent(MainActivity.this);
                startActivity(intent);
            }
        });

        // 设置创建日记按钮的点击事件
        createButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = DiaryEditActivity.buildIntent(MainActivity.this, 0);
                startActivity(intent);
            }
        });

        // 将当前版本名称显示在文本上
        versionTextView.setText("当前版本:v" + AppUtils.getVersionName());

        // 设置退出按钮的点击事件
        logoutButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                logout(); // 调用退出方法
            }
        });
    }

    /**
     * 创建用于启动 MainActivity 的 Intent。
     *
     * @param context 上下文
     * @return 启动 MainActivity 的 Intent
     */
    public static Intent buildIntent(android.content.Context context) {
        return new Intent(context, MainActivity.class);
    }

    // 调用此方法实现退出登录
    private void logout() {
        Mapp.getInstance().setUserLoggedIn(false);
        Intent intent = LoginActivity.buildIntent(this);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
        finish();
    }
}